package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.vo.SysUserVo;
import com.ruoyi.system.domain.dto.ArticleDto;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 文章对象 sys_article
 *
 * @author king
 * @date 2022-07-15
 */
@Data
@TableName("sys_article")
public class SysArticle {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 标题
     */
    @Excel(name = "标题")
    private String title;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 分类ID
     */
    private Long categoryId;

    /**
     * 文章内容
     */
    @Excel(name = "文章内容")
    private String content;

    /**
     * 类型（0表示富文本，1表示markdown）
     */
    @Excel(name = "类型", readConverterExp = "0=表示富文本，1表示markdown")
    private String type;

    /**
     * 封面
     */
    @Excel(name = "封面")
    private String cover;

    /**
     * 状态（0表示删除，1表示草稿，2表示发布，3表示置顶）
     */
    @Excel(name = "状态", readConverterExp = "0=表示删除，1表示草稿，2表示发布，3表示置顶")
    private String state;

    /**
     * 创作类型（1表示原创；2表示转载；3表示衍生）
     */
    @Excel(name = "创作类型", readConverterExp = "1=表示原创；2表示转载；3表示衍生")
    private String writeType;

    /**
     * 转载来源
     */
    @Excel(name = "转载来源")
    private String reprintSource;

    /**
     * 摘要
     */
    @Excel(name = "摘要")
    private String summary;

    /**
     * 标签
     */
    @Excel(name = "标签")
    private String labels;

    /**
     * 阅读数量
     */
    @Excel(name = "阅读数量")
    private Long viewCount;

    @TableField(exist = false)
    private SysUserVo user;


    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;


    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 上一篇
     */
    @TableField(exist = false)
    private ArticleDto lastArticle;

    /**
     * 下一篇
     */
    @TableField(exist = false)
    private ArticleDto nextArticle;


}
